package Day003_多态_内部类.demo002多态时成员访问特点;

/*
    多态时访问成员的特点:
                    1.成员变量: 编译看父类 执行看父类 (编译看左边 执行看左边)
                    2.成员方法:
                                1)非静态方法: 编译看父类 执行看子类 (编译看左边 执行看右边)
                                2)静态方法: 编译看父类 执行看父类 (编译看左边 执行看左边)

                    非静态方法是成员方法.
                    静态方法属于类(类方法),
                        父类的静态方法不能重写,父 子类中出现相同方法不叫重写,是子类重新定义

 */

public class Test {
    public static void main(String[] args) {
        // 父类引用指向子类对象
        Animal anl = new Dog();
        // 1.访问成员变量
        // System.out.println(anl.age);  无法访问age

        // 如果父类Animal中有age 就不报错
        System.out.println(anl.age); // 1  编译看父类 执行看父类!

        // 继承
        //Dog dog = new Dog();
        //System.out.println(dog.age);

        //2.访问非静态方法
        //父类没有方法 会报错
        anl.eat(); // 吃骨头  编译看父类 执行看子类!

        //3.访问静态方法
        //父类没有方法 会报错
        anl.sleep(); // Animal睡觉   编译看父类 执行看父类
    }
}
